function moduleCommentaires()
{
	
	this.commentaire_statut_label = new Array(cp.msg.indesirable, '', cp.msg.attente);
	this.commentaire_statut_class = new Array('spam', 'approuve', 'attente');
	
	// ------------------------------------
	//   Changement de statut / suppression
	// ------------------------------------
	
	this.listID = function(dom) {
		
		var listID = '';
		
		if(dom.length == 0) {
			alert(cp.msg.erreur+' '+cp.msg.aucune_selection);
		}
		
		$(dom).each(function() {
			listID = listID+'|'+$(this).attr('name');
		});
		
		return listID;
	
	};
	
	this.changeClass = function(dom,newClass) {
		$(dom).removeClass('commentaire_approuve').removeClass('commentaire_attente').removeClass('commentaire_spam').addClass(newClass);
	};
	
	this.modifierStatut = function(dom,statut_id) {
		
		var obj = this;
		
		var statut_nom = obj.commentaire_statut_label[statut_id]; 
		var statut_class = obj.commentaire_statut_class[statut_id]; 
		
		cp.ajaxService({
			action: 'cp-commentaires-modifierStatut',
			commentaire_id : this.listID(dom),
			commentaire_statut: statut_id
		}, function(reponse) {
			$(dom).find('span.commentaire_statut').text(statut_nom);
			mCommentaires.changeClass(dom,'commentaire_'+statut_class);
		});
		
	};
	
	this.supprimer = function(dom) {
		cp.ajaxService({
			action: 'cp-commentaires-supprimer',
			commentaire_id: this.listID(dom)
		}, function(reponse) {
			$(dom).supprimerAvecEffet();
		});
	};
	
	// ------------------------------------
	//   Éditer
	// ------------------------------------
	
	this.editer_actif = false;
	this.editer_commentaire_id = 0;
	
	this.editer = function(dom) {
		
		comm = this;

		comm.annulerEditer();
		
		comm.editer_actif = true;
		comm.editer_commentaire_id = $(dom).attr('name');

		var commentaire_id = this.editer_commentaire_id;

		$('#commentaire_'+commentaire_id).after('<tr id="commentaire_editer_'+commentaire_id+'" class="commentaire_editer">'+
				$('#editeur_commentaire').html()+
			'</tr>'
		).hide().next().show();
		
		cp.ajaxService({
			action:'cp-commentaires-getCommentairesParID',
			commentaire_id: commentaire_id
		}, function(reponse) {
			$('#commentaire_editer_'+commentaire_id).
				find('#commentaire_auteur').val($('commentaire_auteur', reponse).text()).end().
				find('#commentaire_email').val($('commentaire_email', reponse).text()).end().
				find('#commentaire_titre').val($('commentaire_titre', reponse).text()).end().
				find('#commentaire_contenu').val($('commentaire_contenu', reponse).text()).
				attr('name', 'commentaire_contenu_'+commentaire_id).attr('id', 'commentaire_contenu_'+commentaire_id).cpMiniToolbar().end().
				find('#commentaire_statut').val($('commentaire_statut', reponse).text()).end().
				find('#commentaire_ip').val($('commentaire_ip', reponse).text()).end().
				find('#commentaire_date').val($('commentaire_date', reponse).text()).end().
				find('#annuler_editer_commentaire').click(function() {
					mCommentaires.annulerEditer();
				}).end().find('#enregistrer_editer_commentaire').click(function() {
					mCommentaires.enregistrerCommentaire();
				});
				
		});
		
	};
	
	
	this.annulerEditer = function() {

		var commentaire_id = this.editer_commentaire_id;

		if(this.editer_actif == true) {
			$('#commentaire_editer_'+commentaire_id).remove();
			$('#commentaire_'+commentaire_id).show();
		}
		
		this.editer_actif = false;
		
	};
	
	this.enregistrerCommentaire = function() {
		
		var comm = this;
		
		var commentaire_id = this.editer_commentaire_id;
		var editeur_dom = $('#commentaire_editer_'+commentaire_id);
		
		cp.ajaxService({
			action:'cp-commentaires-editer',
			commentaire_id:commentaire_id,
			commentaire_auteur:editeur_dom.find('#commentaire_auteur').val(),
			commentaire_email:editeur_dom.find('#commentaire_email').val(),
			commentaire_titre:editeur_dom.find('#commentaire_titre').val(),
			commentaire_contenu:editeur_dom.find('textarea').tinymce().getContent(),
			commentaire_statut:editeur_dom.find('#commentaire_statut').val(),
			commentaire_ip:editeur_dom.find('#commentaire_ip').val(),
			commentaire_date:editeur_dom.find('#commentaire_date').val()
		}, function(reponse) {
			
			var commentaire_auteur = $('commentaire_auteur', reponse).text();
			var commentaire_email = $('commentaire_email', reponse).text();
			var commentaire_ip = $('commentaire_ip', reponse).text();
			var commentaire_date = $('commentaire_belle_date', reponse).text();
			var commentaire_contenu = $('commentaire_contenu', reponse).text();
			var commentaire_statut = $('commentaire_statut', reponse).text();
			
			var commentaire_statut_label = mCommentaires.commentaire_statut_label[commentaire_statut];
			var commentaire_statut_class = mCommentaires.commentaire_statut_class[commentaire_statut];
			
			mCommentaires.changeClass($('#commentaire_'+commentaire_id), 'commentaire_'+commentaire_statut_class);
			
			var background = $('#commentaire_'+commentaire_id).css('background-color');
							
			$('#commentaire_'+commentaire_id).
				find('td.listeCommentaires_auteur>strong').text(commentaire_auteur).end().
				find('a.commentaire_email').text(commentaire_email).attr('href', 'mailto:'+commentaire_email).end().
				find('a.commentaire_ip').text(commentaire_ip).end().
				find('span.commentaire_date_val').text(commentaire_date).end().
				find('div.commentaire_contenu').html(commentaire_contenu).end().
				find('span.commentaire_statut').text(commentaire_statut_label).end().
			css('background', '#85D985').show().animate({backgroundColor: background}, 1000, '', function() {
				$(this).removeAttr('style');
			});
			
			$('#commentaire_editer_'+commentaire_id).hide();
		
		}, function(reponse) {
			
			if($('erreur', reponse).text() == '3') {
				cp.messageErreur(cp.msg.permission_commentaires, $(conteneur).find('.conteneurMsg'));
			}
			else
			{
				
				var conteneur = $('#commentaire_editer_'+commentaire_id);
				var message = $('message', reponse).text();
				var champ = $('champ', reponse).text();
				
				if(champ != '')
				{
					cp.messageErreur(cp.msg.erreur_formulaire, $(conteneur).find('.conteneurMsg'));
					if(champ == 'commentaire_contenu') {
						var jselect = '.mceEditor';
					} else {
						var jselect = '#'+champ;
					}
					
					$(jselect, conteneur).after(
						'<span class="erreur">'+message+'</span>'
					);
				}
			}
			
		});
		
	};
	
}

mCommentaires = new moduleCommentaires();

$(document).ready(function() {
	
	$('a.lien_approuver').click(function() {
		mCommentaires.modifierStatut($(this).parent().parent().parent().parent(), 1);
		return false;
	});
	$('a.lien_attente').click(function() {
		mCommentaires.modifierStatut($(this).parent().parent().parent().parent(), 2);
		return false;
	});
	$('a.lien_spam').click(function() {
		mCommentaires.modifierStatut($(this).parent().parent().parent().parent(), 0);
		return false;
	});
	$('a.lien_supprimer').click(function() {
		if(confirm(cp.msg.comm_confirme_supprimer)) {
			mCommentaires.supprimer($(this).parent().parent().parent().parent());
		}
		return false;
	});
	$('a.lien_editer').click(function() {
		mCommentaires.editer($(this).parent().parent().parent().parent());
		return false;
	});
	
	$('#boutonAction_approuver').click(function() {
		mCommentaires.modifierStatut($('td.listeCommentaires_case>input:checked').parent().parent(), 1);
	});
	
	$('#boutonAction_attente').click(function() {
		mCommentaires.modifierStatut($('td.listeCommentaires_case>input:checked').parent().parent(), 2);
	});
	
	$('#boutonAction_spam').click(function() {
		mCommentaires.modifierStatut($('td.listeCommentaires_case>input:checked').parent().parent(), 0);
	});
	
	$('#boutonAction_supprimer').click(function() {
		
		var dom = $('td.listeCommentaires_case>input:checked').parent().parent();
			
		if(dom.length == 0) {
			alert(cp.msg.erreur+' '+cp.msg.aucune_selection);
			return false;
		}
		
		if(confirm(cp.msg.comms_confirme_supprimer)) {
			mCommentaires.supprimer(dom);
		}
		return false;
	});
	
	// Sélectionner tout
	$('#selectionner_tout').click(function() {
		$('#listeCommentaires').find('input[type=checkbox]').attr('checked', 'checked');
		return false;
	});
	
	// Inverser la sélection
	$('#inverser_selection').click(function() {
		$('#listeCommentaires').find('input[type=checkbox]').each(function() {
			if($(this).attr('checked')) {
				$(this).removeAttr('checked');
			} else {
				$(this).attr('checked', 'checked');
			}
		});
		return false;
	});
	
});